package org.adream.account.dao;

import java.util.List;

import org.adream.account.entity.CategoryEntity;
import org.adream.account.model.CategoryVo;
import org.apache.ibatis.annotations.Param;

/**
 * 后台类别管理 dao
 * 
 * @author chenhaoyu
 *
 */
@BaseMybatisDao
public interface CategoryDao {

	/**
	 * 增加类别
	 * 
	 * @param categoryEntity
	 */
	int addCategory(CategoryEntity categoryEntity);

	/**
	 * 根据id逻辑删除类别
	 * 
	 * @param categoryEntity
	 */
	int deleteCategoryById(CategoryEntity categoryEntity);

	/**
	 * 根据pid逻辑删除类别
	 * 
	 * @param categoryEntity
	 */
	int deleteCategoryByPid(CategoryEntity categoryEntity);

	/**
	 * 更新类别
	 * 
	 * @param categoryEntity
	 */
	int updateCategoryById(CategoryEntity categoryEntity);

	/**
	 * 根据id号查询类别
	 * 
	 * @param categoryId
	 * @return
	 */
	CategoryEntity queryCategoryById(@Param("categoryId") int categoryId);

	/**
	 * 根据pid查询类别
	 * 
	 * @param pid
	 * @return
	 */
	List<CategoryEntity> queryCategoryByPid(@Param("pid") int pid,@Param("dr") int dr);

	/**
	 * 查询所有的类别
	 * 
	 * @return
	 */
	List<CategoryEntity> queryCategory();

	/**
	 * 根据状态查询类别
	 * 
	 * @param dr
	 * @return
	 */
	List<CategoryEntity> queryCategoryByDr(@Param("dr") int dr);

	/**
	 * 根据类别名查询是否存在
	 * 
	 * @param title
	 * @return
	 */
	int queryCategoryTitleExistence(@Param("title") String title);

	/**
	 * 根据关键词 和pid 模糊查询
	 * 
	 * @param title
	 * @return
	 */
	List<CategoryVo> queryCategoryByKeywordAndPid(@Param("keyWord") String keyWord ,@Param("pid") String pid,@Param("dr") int dr);
}
